﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ProyectoPractico
{
    public partial class Form1 : Form
    {
        FuzzyArtmap fuzzyArtmap;
        public Form1()
        {                       
            InitializeComponent();
            button5.Enabled = false;
            button2.Enabled = false;
            progressBar1.Value=0;   
            fuzzyArtmap = new FuzzyArtmap(520);
            etqProgreso.Visible = true;
            etqProgreso.BringToFront();
            
                     
        }

        //aqui se carga el archivo de entrenamiento
        private void button1_Click(object sender, EventArgs e)
        {
            fuzzyArtmap.cargarArchivoImagen();
            MessageBox.Show("Se ha cargado el archivo de imágenes", "Fuzzy ArtMap", MessageBoxButtons.OK, MessageBoxIcon.Information);
            button5.Enabled = true;
        }

        //aqui es el metodo de guardar los pesos del entrenamiento
        private void button2_Click(object sender, EventArgs e)
        {
            fuzzyArtmap.guardarPesos(1);// guarda los pesos de Art 1
            fuzzyArtmap.guardarPesos(2);// guarda los pesos de Art 2
            fuzzyArtmap.guardarPesos(3);// guarda los valores del MapField
            MessageBox.Show("Se han guardado los pesos seleccionados!!", "Guardar", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        //carga la imagen del iris para probar
        private void button3_Click(object sender, EventArgs e)
        {
            
            //textBox1.Text = "hola";
            string nombre = fuzzyArtmap.probar();
            textBox1.Text = nombre;
            if (!nombre.Equals("No se encuentra esta persona"))
            {
                string cargar= "personas\\" + nombre + "\\FOTO.JPG";
                Bitmap bitmap = new Bitmap(cargar);
                pictureBox2.Image = bitmap;
                pictureBox2.Refresh();
            }
            //MessageBox.Show("Se ha dado el resultado", "Fuzzy ArtMap", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button5_Click(object sender, EventArgs e)
        {
            //progressBar1.BeginInvoke(entrenar(),new object[]);
            fuzzyArtmap.entrenar(ref progressBar1,ref etqProgreso);
            progressBar1.Value =100;
            etqProgreso.Text = "100" + "%";
            etqProgreso.Refresh();
            MessageBox.Show("Se finalizó el entrenamiento", "Fuzzy ArtMap", MessageBoxButtons.OK, MessageBoxIcon.Information);
            progressBar1.Value = 0;
            etqProgreso.Text = "0" + "%";
            etqProgreso.Refresh();
            button2.Enabled = true;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            fuzzyArtmap.cargarPesos(1);
            fuzzyArtmap.cargarPesos(2);
            fuzzyArtmap.cargarPesos(3);
            MessageBox.Show("Se han cargado los pesos seleccionados!!", "Cargar", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            textBox1.ReadOnly = true;
            //textBox1.Enabled = false;

        }

        public void actualizarProgreso(double progreso) {
            this.etqProgreso.Text = progreso.ToString()+"%";
        }
       


       /* private  entrenar() {
            fuzzyArtmap.entrenar();
        }*/


        public void ocultarProgreso()
        {
            this.etqProgreso.Text="";
        }
    }
}
